home *** CD-ROM | disk | FTP | other *** search
/ Best of Shareware / Best of PC Windows Shareware 1.0 - Wayzata Technology (7111) (1993).iso / mac / DOS / CAD_CAM / LASI42 / LASIDRC.HLP < prev    next >
Text File  |  1993-09-20  |  18KB  |  428 lines

  1. ≡≡
  2. Introduction
  3.  
  4.  Introduction
  5.  
  6.   The program LASIDRC.EXE is a design rule checking program that performs
  7.   various layout design rule checks by making 2-dimensional bitmaps of
  8.   drawing layers and then doing logical operations on the bitmaps. The
  9.   program has some major changes and improvements over earlier versions of
  10.   LASI design rule checkers:
  11.  
  12.   1. The program reads a Check File which contains parameters and operators
  13.      that perform one or more checks. You can write your own Check File,
  14.      and devise any type of design rule checks that you may want, within
  15.      the limits of the available operations.
  16.  
  17.   2. The program now can find "near miss errors" where one area misses
  18.      being to be connected to another area in a drawing by a single
  19.      smallest drawing unit.
  20.  
  21.   3. The program can be interrupted at any check within the processing of a
  22.      Check File, the state will be saved, and checking will continue in the
  23.      area where it was suspended if LASILL is started again.
  24.  
  25.   The program works on a cell drawing in the default directory (drawing
  26.   directory), and scans the cell in small areas, performing its sequence of
  27.   operations. The results may be displayed on a monitor, may be stored in a
  28.   disk file, or may be printed on a line printer. Automatic or manual
  29.   hardcopies of the display may be made using the same hardcopy programs
  30.   that LASI.EXE uses.
  31.  
  32. Running a Design Rule Check
  33.  
  34.  Running a Design Rule Check
  35.  
  36.   To run LASIDRC you first need to write a Check File as explained below.
  37.   This file contains small "programs" that tell LASIDRC what to do.
  38.  
  39.   Log into the drawing directory and type "LASIDRC". LASIDRC will come up
  40.   in a setup display, providing it finds the drawing files: FORM.DBD,
  41.   CELLS4.DBD and CONSTS4.DBD. It will also allocate memory for LASI objects
  42.   and its bitmaps. If any of this fails, it will tell you so and will
  43.   return to DOS.
  44.  
  45.   1. When the Setup Display comes up, you can enter or change any
  46.      parameters by moving around using the up, down, left, right or ENTER
  47.      keys and then typing in any value. The values will be changed if any
  48.      characters are typed and the location is then moved. You can step
  49.      around and around until you have the parameters as you want them.
  50.  
  51.     The "Check File Name" is the name of the Check File that LASIDRC will
  52.     use. It will always have the extension ".CHK", which will be added to
  53.     the name.
  54.  
  55.     The "Name of Cell" is the main cell you want to check. Note that this
  56.     also checks any lesser cells in the main cell.
  57.  
  58.     The "Check Start Number" is the test in the Check File where you want
  59.     the checking to start. This allows you to skip over some tests.
  60.  
  61.     The "Check Finish Number is the last test you want to do. This allows
  62.     some tests to be omitted.
  63.  
  64.     You may make a Summary File (always named LASIDRC.SUM). This is an
  65.     appended file, which will keep information on all tests until it is
  66.     erased.
  67.  
  68.     You may also print the summary information on a printer as the program
  69.     runs. Alternately, you can just print the Summary File when it is done.
  70.  
  71.     There are two enables for the PAUSE and HCPY operators. You can turn
  72.     these operators on and off as you please without editing the Check
  73.     File.
  74.  
  75.     The resolution and distance may be overwritten if you want. These
  76.     values stay in place until new RESOLUTION= or DISTANCE= parameters are
  77.     encountered in the Check File in any of the following tests. Setting
  78.     these parameters to "*" causes them to be ignored.
  79.  
  80.     You may start checking areas anywhere by writing the bottom-left
  81.     coordinates in the setup. This allows you to go to an certain area in a
  82.     cell without doing all the previous areas. Setting these parameters to
  83.     "*" causes them to be ignored.
  84.  
  85.   The setup is slightly "smart"; it checks and adjusts parameters to
  86.   conform to LASIDRC's checking rules. Units are automatically added to any
  87.   dimensions. You will also notice that where "y" or "n" is wanted,
  88.   anything but "y" will set "n".
  89.  
  90.  
  91.   2. To start checking, press F10. Once you start checking, the parameters
  92.      are saved in the LASIDRC.SET file and are returned when LASIDRC is run
  93.      again. When LASIDRC runs a short status is displayed which moves up
  94.      and down the screen as a screen saving feature.
  95.  
  96.     You may jump to the NEXT CHECK by pressing F10 again.
  97.  
  98.     You may abort checking by pressing ESC. You will go back to the Setup
  99.     Display. When this is done, the last area position and the check number
  100.     will be saved in the setup. If you start LASIDRC.EXE again this
  101.     information will be restored.
  102.  
  103.     Press ESC to go from the Setup to DOS.
  104.  
  105.     Note:  There may be a short delay if ESC is pressed, be patient.
  106.  
  107.   3. Pressing F2 in Setup will read the contents of the Check File as it is
  108.      seen by LASIDRC. That is, the defaults for parameters will be listed
  109.      and any operators that have been disabled by making them into comments
  110.      will not be shown.
  111.  
  112.   4. Pressing F3 in Setup will shell to DOS. You can run your favorite
  113.      editor to make changes to the Check File, for example. Once in a while
  114.      there will not be enough contiguous memory available to run a program;
  115.      in that case you need to exit LASIDRC and go back to DOS. You may
  116.      check the available memory by pressing F2.
  117.  
  118.   If a Check File is read completely, the program will terminate normally
  119.   and go back to DOS. Certain setup parameters will be set to their default
  120.   values.
  121.  
  122. The Check File
  123.  
  124.  Check File Format
  125.  
  126.   A Check File consists of one or more test sequences or checks arranged in
  127.   blocks that contain parameters and operators. Each block starts with a
  128.   TITLE parameter and is ended with an OPERATORS parameter. The OPERATORS
  129.   parameter is always followed by a set of OPERATORS that are enclosed in
  130.   brace characters "{" and "}".
  131.  
  132.   Characters may be upper or lowercase. The format is as follows:
  133.  
  134.  
  135.   TITLE=aaaa<nl>            (40 char. max.)       []=optional
  136.   [RESOLUTION=nnnn<nl>]     (in physical units)   <nl>=newline (CRLF)
  137.   [DISTANCE=nnnn<nl>]       (in physical units)
  138.   [LOCATION=xxxx,yyyy<nl>]  (in physical units)
  139.   OPERATORS=<nl>
  140.   {<nl>
  141.     [OPERATOR<nl>]
  142.     .
  143.     .
  144.     .
  145.   }<nl>
  146.   TITLE=bbbb<nl>
  147.   etc.
  148.  
  149.  
  150.   Check Parameters:
  151.  
  152.   TITLE= is the name of a particular test, and must be present. If no new
  153.     title is read, the Check File is considered finished.
  154.  
  155.   RESOLUTION= is the physical size of each bit in a bitmap. This will be
  156.     snapped to multiples of the basic units used in the drawing. Making
  157.     this larger speeds up checking, but, details smaller than this number
  158.     may be lost. This defaults to the previous setting if not present.
  159.  
  160.   DISTANCE= is the distance by which bitmaps will be expanded when spacing
  161.     checks are being done. It also affect the position is the areas being
  162.     checked. This defaults to the previous setting.
  163.  
  164.   LOCATION= sets the point on a cell of where to start scanning. This is
  165.     the bottom-left corner of the area to be scanned. This does not default
  166.     to any previous values.
  167.  
  168.   OPERATORS= begins the sequence of operator mnemonics that do the actual
  169.     checking. The block of operators always starts with "{" and ends with
  170.     "}". Each operator is written on a new line (CR-LF) and may contain
  171.     arguments separated by a comma ",". Operators are read character by
  172.     character starting after "=". The right brace "}" terminates the
  173.     operations and the present check. There is space for a maximum of 50
  174.     operators in the sequence.
  175.  
  176.   The variables above are recognized by only their first two characters and
  177.   may be upper or lower case. For example, "op=" is equivalent to
  178.   "OPERATORS=".
  179.  
  180.   A semicolon may be added to an operator line, which has the effect of
  181.   making everything to the right a comment. You may "turn off" and operator
  182.   by putting a ";" as the first character in the line. This lets you leave
  183.   temporary operators in place in the file while you are working out a
  184.   test.
  185.  
  186.  Working Maps
  187.  
  188.   The program maintains several internal 640x640 bitmaps. Only two are
  189.   available to the user. These are the R (results) and S (secondary) maps.
  190.  
  191.   All tests are done by making and moving layer maps into the R and S
  192.   working maps, where the various operators can work on them.
  193.  
  194.   R and S maps are arranged in a 2-map "stack" as shown below:
  195.  
  196.  
  197.           PUSH layer map ────┐
  198.                              
  199.                            ┌─────────┐
  200.                            │ │  R    │<─┐<── R Operator
  201.             Map Stack      ├─│───────┤  │
  202.                            │   S    │──┴─── RS Operator
  203.                            └─────────┘
  204.  
  205.  
  206.   To do any operations on maps you first push a layer map onto the map
  207.   stack. When a map is pushed into R, the contents of R are first pushed
  208.   into S.
  209.  
  210.   Certain operators work with the R map and some work with both the R and S
  211.   maps. The results are always placed in the R map.
  212.  
  213.  Operators
  214.  
  215.   MAP,layer
  216.  
  217.     This creates a layer map file on the hard disk, which may be retrieved
  218.     by other operators. Layer is a number from 0 to 64.
  219.  
  220.     Layer 0 is a special layer, will store the R map for later use at any
  221.     stage of a checking sequence.
  222.  
  223.     You must ALWAYS use the MAP operator to generate a layer map if you are
  224.     going to use that layer map later.
  225.  
  226.  
  227.   PUSH,layer
  228.  
  229.     Retrieves a layer map from the hard disk and pushes the map onto the
  230.     map stack. The contents of the R map are moved to the S map. The
  231.     contents of the S map are lost. PUSH,0 retrieves and pushes a MAP,0
  232.     that may have been previously stored.
  233.  
  234.  
  235.   NOTR, ANDRS, ORRS, XORRS
  236.  
  237.     These are the logical operators that do just what they indicate. The
  238.     results are placed in the R map and the S map remains unchanged.
  239.  
  240.  
  241.   SETR,CLRR
  242.  
  243.     These are rarely used operators that set all bits of R to "1" or "0"
  244.     respectively.
  245.  
  246.  
  247.   DBLR
  248.  
  249.     This doubles the bits in X and Y directions so that single bits may be
  250.     displayed better. This is used automatically by EXPR (below).
  251.  
  252.  
  253.   EXPR[,offset]
  254.  
  255.     This is the single map expand operator. It performs an iterative
  256.     octagonal (see below) expansion on the R map. Each iteration expands
  257.     the pattern by ONE RESOLUTION UNIT. The results are placed in the R map
  258.     and the original R map is lost.
  259.  
  260.     The results represent a pattern produced by single "0s" in the map as
  261.     the "1s" merge with each expansion pass.
  262.  
  263.     The optional offset is a correction that may be used if found
  264.     necessary. The offset is the number of iterations (or resolution units)
  265.     to be subtracted from the expansion so that the distance parameter
  266.     gives the correct results.
  267.  
  268.  
  269.   EXPRS[,offset]
  270.  
  271.     This expands the R and S maps using an iterative octagonal expansion,
  272.     and places the results in the R map. Each iteration is one resolution
  273.     unit. The original R and S maps are lost. Since there are two separate
  274.     maps, the result is the intersection of the maps as they expand.
  275.  
  276.  
  277.   TESTR
  278.  
  279.     This is a conditional branching operator that tests if any bits are set
  280.     to "1" in the R map. If there are any "1s" the sequence of operators
  281.     continues. If there are no results, the rest of the operators are
  282.     skipped and the sequence of operators starts over again in the next
  283.     drawing area. This is used to determine is there is anything to print
  284.     or display.
  285.  
  286.  
  287.   DSPR,color index,sparse modulus
  288.  
  289.     This displays the R map as a rectangular pattern on the monitor screen.
  290.     The color index is the usual integerr (0 to 15) used by the PC video to
  291.     set a color: 0=black, 1= blue, 2=green, etc.
  292.  
  293.     The sparse modulus is a integer that allows only those pixels whose X
  294.     and Y position divided by the modulus that leaves a remainder of 0 to
  295.     be displayed. This "thins out" the filled patterns to give a better
  296.     display or print. For all pixels, the modulus is 1; for every other
  297.     pixel, the modulus is 2, etc.
  298.  
  299.  
  300.   DSP,map,color index,sparse modulus
  301.  
  302.     This is the same as DSPR except it displays a stored map. Use this to
  303.     display the layers as a background when displaying any results.
  304.  
  305.  
  306.   PAUSE
  307.  
  308.     This produces a pause after a display so that you can examine the
  309.     screen. Without it, LASIDRC would go on to the next area to be checked.
  310.     This is enabled by the Setup switch.
  311.  
  312.  
  313.   HCPY
  314.  
  315.     This calls the hardcopier automatically to produce a picture of the
  316.     screen after any results are displayed. If the Print Summary Setup
  317.     switch is set this does not work, since it would disrupt the summary
  318.     printing. This must also be enabled by the Setup switch.
  319.  
  320. Octagonal Expansion
  321.  
  322.  Octagonal Expansion
  323.  
  324.   When an expansion is done, an iterative process is used to enlarge the
  325.   map patterns. With each pass the pattern is enlarged by one bit by
  326.   shifting it in each of the four orthogonal directions (+x,-x,+y,-y). It
  327.   is also shifted diagonally, on the average, .707 of the time. This
  328.   produces an octagonal pattern if the original pattern is a single point.
  329.  
  330.  
  331.                                             * * * * *
  332.     Octagonal single point expansion      * * * * * * *
  333.     after four passes                   * * * * * * * * *
  334.                                         * * * * * * * * *
  335.                                         * * * * X * * * *
  336.                                         * * * * * * * * *
  337.                                         * * * * * * * * *
  338.                                           * * * * * * *
  339.                                             * * * * *
  340.  
  341. Optimizing Parameters
  342.  
  343.  Optimizing Parameters
  344.  
  345.   Resolution can be made as small as 1 basic unit used in a drawing.
  346.  
  347.   Making the Resolution larger allows checking to be done much faster
  348.   because larger pieces of a drawing can be checked at a time and less
  349.   iterations are necessary when checking. The time required to check is
  350.   roughly in inverse proportion to the 3rd power of the Resolution. That
  351.   is, if you halve your Resolution it will run about 8 times faster. Unless
  352.   you have a very fast computer, the highest Resolution is best used on
  353.   small cells or for checks that involve small dimensions. For example,
  354.   contact coverage or checking for small gaps in metal runs might run at
  355.   the smallest Resolution.
  356.  
  357.   Making Resolution too large can cause errors to be missed because details
  358.   cannot be resolved smaller than that size and roundoffs may occur.
  359.   However, scanning for gross errors can quickly be done using a larger
  360.   Resolution.
  361.  
  362.   The Distance parameter will affect the test time, since each iteration of
  363.   an expansion takes about the same amount of time.
  364.  
  365.   Distance will also affect the size and position of the areas being
  366.   checked. Distance can be set to 0, but a small correction, depending on
  367.   the Resolution, will be made so that checked areas will overlap slightly.
  368.  
  369. Missed and False Errors
  370.  
  371.  Missed and False Errors
  372.  
  373.   When checking distances, if programmed correctly, LASIDRC should always
  374.   find an flag distances <= (Distance - Resolution). For example, a 10 um
  375.   Distance and a Resolution of .5um should find anything less than or equal
  376.   to 9.5um. Note that as the Resolution approaches zero, this distance
  377.   approaches the Distance.
  378.  
  379.   This does not mean that all distances will be accepted if they are
  380.   greater than (Distance - Resolution). For 45 deg. diagonal distances,
  381.   there can be an uncertainty that is less than +/- half the Resolution,
  382.   due partly to the way that LASIDRC works and due partly to numerical
  383.   roundoff problems. For angles that are in a range centered around odd
  384.   multiples of 22.5 deg. ( 22.5, 67.5, etc.) there is an exaggeration of
  385.   the expansion distance. This may flag oddly shaped objects. Since LASIDRC
  386.   expands areas using an octogonal pattern, these exaggerations correspond
  387.   to the octogon vertex peaks or about an 8 percent exaggeration at most.
  388.  
  389.   Since LASIDRC looks for single bits when doing a single layer expansion,
  390.   once in a while on odd shapes, the map can produce single bit extensions
  391.   or notches. LASIDRC will find these and will flag them, even though they
  392.   are an artifact. You should examine these and see if there really is
  393.   anything wrong. In fact, the way that LASIDRC works often picks out
  394.   patterns that are not good layout practice.
  395.  
  396.   LASIDRC works in such a way that sharp corners tend to be rounded, just
  397.   as actual photomasking and etching might do. Keep this in mind when
  398.   setting the Distance parameter. For example, the distance between two
  399.   adjacent corners will be seen by LASIDRC as a little more than the actual
  400.   tip to tip distance.
  401.  
  402.   The method by which LASIDRC works is sensitive to gross errors which are
  403.   well beyond the actual flagging threshold. It is virtually impossible for
  404.   LASIDRC to miss these.
  405.  
  406.   LASIDRC will find "near miss" errors in which there is a gap between
  407.   filled areas that is greater than or equal to the value set as the
  408.   Resolution. Set the Resolution to the smallest physical unit (1 basic
  409.   drawing unit), and set the Distance to some value large enough to find
  410.   all small gaps, but small enough to let LASIDRC run quickly. On strange
  411.   shapes, LASIDRC will sometimes flag small notches. Ignore these if they
  412.   cause no trouble.
  413.  
  414. Disclaimer
  415.  
  416.  Disclaimer
  417.  
  418.   The LASIDRC.EXE program is furnished on an "as is" basis. LASIDRC will
  419.   make a "best effort" to call to attention any possible layout errors.
  420.   Experience should confirm that it doesn't miss much. However, the author
  421.   or anyone distributing the program cannot assume responsibility for how
  422.   the program is used, how it is programmed or for the results of its use.
  423.   The program cannot be absolutely guaranteed to find all instances in a
  424.   layout that may result in incorrect function of an integrated circuit or
  425.   other device. LASIDRC is to be considered as a valuable aid to actual
  426.   visual inspection and the users own knowledge.
  427.  
  428.